REDIS中的三种持久化方式

35次阅读
没有评论

REDIS 中的三种持久化方式

了解了一下 redis 的两种持久化方式

实际上是有三种的

分别是使用

RDB    是 redis database 的简称,采用二进制方法进行存储。可以使用手动和自动两种方式进行存储

手动:save、bgsave。save 的话会阻塞 redis 进程。bgsave 会消耗更多的内存。

AOF     是使用纯文本方式进行存储的 redis 储存方式。因为是文件逐行存储,所以一般速度没有 rdb 快。

混合模式   结合了上面两种方法。但是并非是仅仅开启了上面两种持久化方式,而是将两种持久化方式存储在同一个文件中,依赖于 aof 方式,因此 aof 要默认开启。

 

开启 RDB

save 900 1

save 300 10

save 60 10000

dbfilename “dump.rdb” # 持久化文件名称

dir “/data/dbs/redis/6381” # 持久化数据文件存放的路径

 

上面配置即为开启 rdb 的方式

save 900 1 就是 900 秒内有 1 次储存,其他配置以此类推

当然,默认的自动存储使用的 bgsave

 

开启 AOF

 

dir “/data/dbs/redis/6381” #AOF 文件存放目录

appendonly yes # 开启 AOF 持久化,默认关闭

appendfilename “appendonly.aof” #AOF 文件名称(默认)

appendfsync no #AOF 持久化策略

autoaofrewritepercentage 100 # 触发 AOF 文件重写的条件(默认)

autoaofrewriteminsize 64mb # 触发 AOF 文件重写的条件(默认)

 

上面的配置即是开启 aof 配置的方式,很多配置中,都是 aof 和 rdb 同时开启。

AOF 的持久化策略有三个:

# always: 每次写入都立即同步到磁盘,最安全,但性能最低。

# everysec: 每秒同步一次,默认推荐值,平衡性能和安全性。

# no: 由操作系统自行决定何时同步,性能高但可能丢失数据。

如果是较为重要的数据可以采取 everysec,缓存等可以考虑使用 no

 

重写 AOF 的策略有两个

1 是超过本身的 100%

2 是最小大小超过 64M

如果大小没有超过 64M,即使是 1 的策略超过了之前的 100% 也不会生效

 

开启混合模式的持久化

 

aof-use-rdb-preamble yes   #如果这里设置为 no,aof 文件默认只记录文本格式

appendonly yes
appendfsync everysec          #同时将 aof 和 aof 的储存策略标注

 

 

 

 

正文完
 
评论(没有评论)
验证码